﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Cliente
{
    public partial class frmSubSistema_Buscar : Form
    {
        private TrupalTVCBL.LineaBL oLineaBL;
        private TrupalTVCBL.EquipoBL oEquipoBL;
        private TrupalTVCBL.SistemaBL oSistemaBL;
        private TrupalTVCBL.SubSistemaBL oSubSistemaBL;

        public TrupalTVCEF.TBMANSUBSISTEMA TBMANSUBSISTEMA;

        private List<TrupalTVCEF.TBMANLINEA> ListaLineas;
        private List<TrupalTVCEF.TBMANEQUIPO> ListaEquipos;
        private List<TrupalTVCEF.TBMANSISTEMA> ListaSistemas;
        private List<TrupalTVCEF.TBMANSUBSISTEMA> ListaSubSistemas;

        public frmSubSistema_Buscar()
        {
            InitializeComponent();
            oLineaBL = new TrupalTVCBL.LineaBL();
            oEquipoBL = new TrupalTVCBL.EquipoBL();
            oSistemaBL = new TrupalTVCBL.SistemaBL();
            oSubSistemaBL = new TrupalTVCBL.SubSistemaBL();
        }

        private void frmSubSistema_Buscar_Load(object sender, EventArgs e)
        {
            TreeNode mainNode = new TreeNode();

            mainNode.Name = string.Concat("1", "|", "0", "|", "0", "|", "0", "|", "0");
            mainNode.Text = "FABRICA DE LECHE";

            ListaLineas = oLineaBL.ListarLineas();
            ListaEquipos = oEquipoBL.ListarEquipos();
            ListaSistemas = oSistemaBL.ListarSistemas();
            ListaSubSistemas = oSubSistemaBL.ListarSubSistemas();

            //LINEAS
            foreach(var itemLinea in ListaLineas)
            {
                TreeNode nodeLinea = new TreeNode();

                nodeLinea.Name = string.Concat("1", "|", itemLinea.LININ_CORLINEA, "|", "0", "|", "0", "|", "0");
                nodeLinea.Text = itemLinea.LINVC_DESLINEA;

                //MAQUINAS
                List<TrupalTVCEF.TBMANEQUIPO> tmpListaEquipos = ListaEquipos.FindAll(x => x.LININ_CORLINEA == itemLinea.LININ_CORLINEA);
                foreach (var itemEquipo in tmpListaEquipos)
                {
                    TreeNode nodeEquipo = new TreeNode();

                    nodeEquipo.Name = string.Concat("1", "|", itemLinea.LININ_CORLINEA, "|", itemEquipo.EQUIN_COREQUIP, "|", "0", "|", "0");
                    nodeEquipo.Text = itemEquipo.EQUIVC_DESEQUIP;

                    //SISTEMAS
                    List<TrupalTVCEF.TBMANSISTEMA> tmpListaSistemas = ListaSistemas.FindAll(x => x.EQUIN_COREQUIP == itemEquipo.EQUIN_COREQUIP);
                    foreach (var itemSistema in tmpListaSistemas)
                    {
                        TreeNode nodeSistema = new TreeNode();

                        nodeSistema.Name = string.Concat("1", "|", itemLinea.LININ_CORLINEA, "|", itemEquipo.EQUIN_COREQUIP, "|", itemSistema.SISIN_CORSISTE, "|", "0");
                        nodeSistema.Text = itemSistema.SISVC_DESSISTE;
                        
                        //SUBSISTEMAS
                        List<TrupalTVCEF.TBMANSUBSISTEMA> tmpListaSubSistemas = ListaSubSistemas.FindAll(x => x.SISIN_CORSISTE == itemSistema.SISIN_CORSISTE);
                        foreach (var itemSubSistema in tmpListaSubSistemas)
                        {
                            TreeNode nodeSubSistema = new TreeNode();

                            nodeSubSistema.Name = string.Concat("1", "|", itemLinea.LININ_CORLINEA, "|", itemEquipo.EQUIN_COREQUIP, "|", itemSistema.SISIN_CORSISTE, "|", itemSubSistema.SUBIN_CORSUBSI);
                            nodeSubSistema.Text = itemSubSistema.SUBVC_DESSUBSI;
                            nodeSistema.Nodes.Add(nodeSubSistema);

                        }
                        nodeEquipo.Nodes.Add(nodeSistema);

                    }
                    nodeLinea.Nodes.Add(nodeEquipo);

                }
                mainNode.Nodes.Add(nodeLinea);

            }

            tvwPrincipal.Nodes.Add(mainNode);

            tvwPrincipal.Nodes[0].Expand();
            tvwPrincipal.Nodes[0].Nodes[0].Expand();
            tvwPrincipal.Nodes[0].Nodes[0].Nodes[0].Expand();
            tvwPrincipal.Nodes[0].Nodes[0].Nodes[0].Nodes[0].Expand();
            
        }

        private void tvwPrincipal_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            TreeNode NodoSeleccionado = e.Node;
            string[] NameSplited = NodoSeleccionado.Name.Split('|');
            if (NameSplited[4] != "0")
            {
                TBMANSUBSISTEMA = ListaSubSistemas.Find(x => x.SUBIN_CORSUBSI == Convert.ToInt32(NameSplited[4]));
                //TBMANSUBSISTEMA.TBMANSISTEMA = ListaSistemas.Find(x => x.SISIN_CORSISTE == Convert.ToInt32(NameSplited[3]));
                //TBMANSUBSISTEMA.TBMANSISTEMA.TBMANEQUIPO = ListaEquipos.Find(x => x.EQUIN_COREQUIP == Convert.ToInt32(NameSplited[2]));

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
        }
    }
}
